#!/bin/bash

CONFNAME=runhwactivator
START_CONFNAME=S99$CONFNAME
STOP_CONFNAME=K10$CONFNAME

SYSTEM_BIT=$($(which getconf) LONG_BIT)

if [ "$(which udevadm)" != "" ]
then
	udevVer=`udevadm version`
else
	udevVer=`udevinfo -V | awk '{print $3}'`
fi

if [ "$(pidof HWActivator)" != "" ]
then
	kill -9 $(pidof HWActivator)
fi

INSTALL_PATH=$1


"$INSTALL_PATH"/driver/ndis_driver/ndis_install "$INSTALL_PATH"/driver/ndis_driver

if [ $SYSTEM_BIT -gt 32 ]
then
	cp "$INSTALL_PATH"/driver/64bit/HWActivator "$INSTALL_PATH"/driver/
else
	cp "$INSTALL_PATH"/driver/32bit/HWActivator "$INSTALL_PATH"/driver/
fi
chmod a+x "$INSTALL_PATH"/driver/HWActivator

if [ $udevVer -ge 098 ]
then
   sed "s#/path/HWActivator#${INSTALL_PATH}/driver/HWActivator $2#g" "$INSTALL_PATH"/driver/10-Huawei-Datacard.rules > /etc/udev/rules.d/10-Huawei-Datacard.rules
else
   sed "s#/path/HWActivator#${INSTALL_PATH}/driver/HWActivator $2#g" "$INSTALL_PATH"/driver/10-Huawei-Datacard-old.rules > /etc/udev/rules.d/10-Huawei-Datacard.rules
fi
chmod a+x /etc/udev/rules.d/10-Huawei-Datacard.rules

cp "$INSTALL_PATH"/driver/HuaweiAutoStart.desktop /etc/xdg/autostart/
chmod a+x /etc/xdg/autostart/HuaweiAutoStart.desktop
echo "rm -f /etc/xdg/autostart/HuaweiAutoStart.desktop" >> "$INSTALL_PATH"/driver/Uninstall

for AUTORUNPATH in `find /home/ -mount -name "[Aa]utostart" -type d`;
do


    echo "AUTORUNPATH=$AUTORUNPATH"
    if [ -d $ADDRUNLEVEL ] ; then
       cp "$INSTALL_PATH"/driver/HuaweiAutoStart.desktop $AUTORUNPATH
        chmod a+x $AUTORUNPATH/HuaweiAutoStart.desktop
        echo "rm -f $AUTORUNPATH/HuaweiAutoStart.desktop" >> "$INSTALL_PATH"/driver/Uninstall
    fi
done
for AUTORUNPATH in `find /root/ -mount -name "[Aa]utostart" -type d`;
do
    echo "AUTORUNPATH=$AUTORUNPATH"
    if [ -d $ADDRUNLEVEL ] ; then
       cp "$INSTALL_PATH"/driver/HuaweiAutoStart.desktop $AUTORUNPATH
        chmod a+x $AUTORUNPATH/HuaweiAutoStart.desktop
        echo "rm -f $AUTORUNPATH/HuaweiAutoStart.desktop" >> "$INSTALL_PATH"/driver/Uninstall
    fi
done


#install the configuration file for auto run in boot
sed "s#CURPATH#${INSTALL_PATH}#g" "$INSTALL_PATH"/driver/skeleton > "$INSTALL_PATH"/driver/skeleton.bak

sed "s#parameter#$2#g" "$INSTALL_PATH"/driver/skeleton.bak > "$INSTALL_PATH"/driver/$CONFNAME

rm -f "$INSTALL_PATH"/driver/skeleton.bak



if [ -d /etc/init.d ]
then
    cp -f "$INSTALL_PATH"/driver/$CONFNAME /etc/init.d/
    chmod a+x /etc/init.d/$CONFNAME
    CONFPATH=/etc/init.d
elif [ -d /etc/rc.d ]
then
    cp -f "$INSTALL_PATH"/driver/$CONFNAME /etc/rc.d/
    chmod a+x /etc/rc.d/$CONFNAME
    CONFPATH=/etc/rc.d
fi

echo "rm -f $CONFPATH/$CONFNAME" >> "$INSTALL_PATH"/driver/Uninstall

#use command
for ADDRUNLEVEL in `find /etc/ -name "rc[2345].d" -type d`;
do
    echo "ADDRUNLEVEL=$ADDRUNLEVEL"
    if [ -d $ADDRUNLEVEL ] ; then
        if [ -L "$ADDRUNLEVEL/$START_CONFNAME" ] ; then
            rm -f $ADDRUNLEVEL/$START_CONFNAME
            rm -f $ADDRUNLEVEL/$STOP_CONFNAME
        fi
        ln -sv $CONFPATH/$CONFNAME $ADDRUNLEVEL/$START_CONFNAME
        chmod a+x $ADDRUNLEVEL/$START_CONFNAME
        ln -sv $CONFPATH/$CONFNAME $ADDRUNLEVEL/$STOP_CONFNAME
        chmod a+x $ADDRUNLEVEL/$STOP_CONFNAME
    
        echo "rm -f $ADDRUNLEVEL/$START_CONFNAME" >> "$INSTALL_PATH"/driver/Uninstall
        echo "rm -f $ADDRUNLEVEL/$STOP_CONFNAME" >> "$INSTALL_PATH"/driver/Uninstall
    fi
done

if [ -f /etc/init.d/.depend.start ]
then
    rm -f /etc/init.d/.depend.start
    rm -f /etc/init.d/.depend.stop
    chkconfig -a runhwactivator
fi

"$INSTALL_PATH"/driver/sleep-settings.sh "$INSTALL_PATH" 



cp "$INSTALL_PATH"/driver/usbmod /sbin/
chmod a+x /sbin/usbmod
cp "$INSTALL_PATH"/driver/startMobilePartner /sbin/
chmod a+x /sbin/startMobilePartner
echo "rm -f /sbin/usbmod" >> "$INSTALL_PATH"/driver/Uninstall
echo "rm -f /sbin/startMobilePartner" >> "$INSTALL_PATH"/driver/Uninstall

    
"$INSTALL_PATH"/driver/HWActivator $2>>/dev/null 2>&1
